IAMロールの「信頼されたエンティティ」のPrincipal要素に覚えのないロールIDが設定されている場合の原因と対処法
困っていた内容
IAMロールの「信頼されたエンティティ」の Principal要素 がいつの間にか変更されていました。
設定の変更は行っていませんが、自動的に変更されるようなことはありますか? 原因を教えてください。
■ 設定していた「信頼されたエンティティ」
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::XXXXXXXXXXXX:role/TestRole" }, "Action": "sts:AssumeRole" } ] }
■ いつの間にか変わっていた「信頼されたエンティティ」
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "AROATU7HFULVI7ZVOW2EK" }, "Action": "sts:AssumeRole" } ] }
原因
この事象の原因は、Principal要素に設定されている ロール(例: TestRole) が削除されたために発生しています。
ロール信頼ポリシーの Principal要素 に特定のIAMロールを指定した場合、ロールの一意のプリンシパルIDに変換されます。
このロールの一意のプリンシパルIDを保持しているロールが存在していると、ロール信頼ポリシーの Principal要素 はARNで表示されますが、該当のロールが削除された場合、ARNの変換が行えなくなりロールの一意のプリンシパルIDが表示されることになります。
確認してみた & 対処法
アカウント1でロール: TestRole を作成し、アカウント2で以下の様に設定します。
この時、TestRole の ロールID を確認すると以下の通りとなっていました。
"RoleId": "AROATU7HFULVI7ZVOW2EK"
TestRole を削除してみると以下の様に Principal要素 が自動的に変更されます。
さらに先ほど削除したロールと同じ名前の TestRole を作成して ロールID を確認してみます。
"RoleId": "AROATU7HFULVIOPWY5P5J"
ロールを再作成しているため、ロールIDはもちろん最初のIDとは異なります。
*ロールIDはコンソールでは表示されないため、AWS CLIでご確認ください。
aws iam get-role --role-name ロールの名前
信頼されたエンティティの Principal要素 で参照されているロールを削除して再作成した場合は、ポリシーのロールを編集して プリンシパルID を正しいARNに置き換えてください。